// ItemDetailActivity.java
package com.xxxy.ljh.myapplication.activity.detail;

import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

import com.xxxy.ljh.myapplication.R;
import com.xxxy.ljh.myapplication.model.Item;

/**
 * 物品详情展示页面
 * <p>
 * 该 Activity 负责接收从上一个界面传递过来的物品信息，并在界面上显示详细的物品数据。
 * 用户可以通过点击“返回”按钮关闭当前页面并回到上一级界面。
 */
public class ItemDetailActivity extends AppCompatActivity {

    private TextView tvItemName, tvItemType, tvSpecification, tvQuantity,
            tvAvailableQuantity, tvStatus, tvPurchaseTime, tvPurchasePrice,
            tvTotalValue, tvManagerId, tvStorageLocation, tvUseRule, tvRemark;
    private Button btnBack;

    /**
     * Activity 创建时调用的方法
     *
     * @param savedInstanceState 用于恢复状态的 Bundle 对象
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_item_detail);

        initViews();
        displayItemDetails();
        setupEventListeners();
    }

    /**
     * 初始化布局中的所有视图组件
     * <p>
     * 将 XML 布局文件中定义的各个 TextView 和 Button 控件与 Java 成员变量进行绑定，
     * 方便后续操作这些控件。
     */
    private void initViews() {
        tvItemName = findViewById(R.id.tvDetailItemName);
        tvItemType = findViewById(R.id.tvDetailItemType);
        tvSpecification = findViewById(R.id.tvDetailSpecification);
        tvQuantity = findViewById(R.id.tvDetailQuantity);
        tvAvailableQuantity = findViewById(R.id.tvDetailAvailableQuantity);
        tvStatus = findViewById(R.id.tvDetailStatus);
        tvPurchaseTime = findViewById(R.id.tvDetailPurchaseTime);
        tvPurchasePrice = findViewById(R.id.tvDetailPurchasePrice);
        tvTotalValue = findViewById(R.id.tvDetailTotalValue);
        tvManagerId = findViewById(R.id.tvDetailManagerId);
        tvStorageLocation = findViewById(R.id.tvDetailStorageLocation);
        tvUseRule = findViewById(R.id.tvDetailUseRule);
        tvRemark = findViewById(R.id.tvDetailRemark);
        btnBack = findViewById(R.id.btnBack);
    }

    /**
     * 显示物品详细信息
     * <p>
     * 从 Intent 中获取传递来的 Item 对象，并将其中的数据填充到对应的 TextView 中。
     * 若某些字段为空或未设置，则使用默认提示文本代替。
     */
    private void displayItemDetails() {
        Intent intent = getIntent();
        if (intent != null && intent.hasExtra("item")) {
            Item item = (Item) intent.getSerializableExtra("item");
            if (item != null) {
                tvItemName.setText(item.getItemName() != null ? item.getItemName() : "未设置");
                tvItemType.setText(item.getItemType() != null ? item.getItemType() : "未分类");
                tvSpecification.setText(item.getSpecification() != null ? item.getSpecification() : "无");
                tvQuantity.setText(String.valueOf(item.getQuantity()));
                tvAvailableQuantity.setText(String.valueOf(item.getAvailableQuantity()));
                tvStatus.setText(item.getStatus() == 1 ? "有效" : "无效");
                tvPurchaseTime.setText(item.getPurchaseTime() != null ? item.getPurchaseTime() : "未设置");
                tvPurchasePrice.setText(String.valueOf(item.getPurchasePrice()));
                tvTotalValue.setText(String.valueOf(item.getTotalValue()));
                tvManagerId.setText(String.valueOf(item.getManagerId()));
                tvStorageLocation.setText(item.getStorageLocation() != null ? item.getStorageLocation() : "未设置");
                tvUseRule.setText(item.getUseRule() != null ? item.getUseRule() : "无");
                tvRemark.setText(item.getRemark() != null ? item.getRemark() : "无");
            }
        }
    }

    /**
     * 设置事件监听器
     * <p>
     * 绑定“返回”按钮的点击事件，当用户点击后结束当前 Activity 并返回至上一界面。
     */
    private void setupEventListeners() {
        btnBack.setOnClickListener(v -> finish());
    }
}
